package com.example.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.example.entity.User;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

import java.util.List;

public interface UserMapper extends BaseMapper<User> {
    
    /**
     * 游标分页查询 - 基于ID偏移量
     * @param lastId 上一页最后一个记录的ID
     * @param pageSize 每页大小
     * @return 用户列表
     */
    @Select("SELECT id, name, age, email, phone, address, company, job_title, salary, created_at FROM excel_easy_export_user WHERE id > #{lastId} ORDER BY id ASC LIMIT #{pageSize}")
    List<User> selectPageByCursor(@Param("lastId") Long lastId, @Param("pageSize") Integer pageSize);
    
    /**
     * 获取指定ID之后的记录总数
     * @param lastId 上一页最后一个记录的ID
     * @return 总数
     */
    @Select("SELECT COUNT(*) FROM excel_easy_export_user WHERE id > #{lastId}")
    Long countByCursor(@Param("lastId") Long lastId);
}